package com.huabo.audit.oracle.entity;

import java.util.Date;
import java.util.List;
import java.util.Set;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

@TableName("TBL_NBSJ_PROJECT")
@Data
@ApiModel("审计项目实体类")
@Accessors(chain = true)
public class TblNbsjProjectEntity {
	
	private static final long serialVersionUID = 1L;
	public final static Integer NO_SELECT=0;//未切换
	public final static Integer YE_SELECT=1;//已切换
	public final static Integer UPDATENO = 0;//不完整
	public final static Integer UPDATEYES = 1;//完整
	public final static Integer GD_STATUS=4;//审计项目归档状态
	public final static Integer EXAMINETYPE1 = 1;//未审批
	/**
	 * 审批中
	 */
	public final static Integer EXAMINETYPE2 = 2;//审批中
	public final static Integer EXAMINETYPE3 = 3;//审批驳回
	public final static Integer EXAMINETYPE4 = 4;//审批通过
	public final static Integer EXAMINETYPE5 = 5;//需调整
	public final static Integer EXAMINETYPE6 = 6;//中断

    @TableId(value = "projectid", type= IdType.AUTO)
    @ApiModelProperty(value="审计项目ID")
    private Integer projectId;

    @TableField(value = "prjoectname")
    @ApiModelProperty(value="审计项目名称")
    private String prjoectName;

    @TableField(value = "planyear")
    @ApiModelProperty(value="计划年份")
    private String planYear;

    @TableField(value = "projectsource")
    @ApiModelProperty(value="项目来源")
    private String projectSource;

    @TableField(value = "startdate")
    @ApiModelProperty(value="开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date startDate;

    @TableField(value = "enddate")
    @ApiModelProperty(value="结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endDate;

    @TableField(value = "pmid")
    @ApiModelProperty(value="项目经理")
    private Integer pmId;

    @TableField(value = "tempid")
    @ApiModelProperty(value="审计模板id")
    private Integer tempId;

    @TableField(exist = false)
    @ApiModelProperty(value="审计模板")
    private TblNbsjTempleteEntity temp;//审计模板

    @TableField(value = "costs")
    @ApiModelProperty(value="费用")
    private Integer costs;

    @TableField(value = "purpose")
    @ApiModelProperty(value="审计目标和范围")
    private String purpose;

    @TableField(value = "scopes")
    @ApiModelProperty(value="审计内容和重点")
    private String scopes;

    @TableField(value = "pursuant")
    @ApiModelProperty(value="审计程序和方法")
    private String pursuant;

    @TableField(value = "comments")
    @ApiModelProperty(value="备注")
    private String comments;

    @TableField(value = "umpireid")
    @ApiModelProperty(value="主审人")
    private Integer umpireId;

    @TableField(value = "controlid")
    @ApiModelProperty(value="质控经理")
    private Integer controlId;

    @TableField(value = "audittype")
    @ApiModelProperty(value="审计类型")
    private String auditType;

    @TableField(value = "projectcode")
    @ApiModelProperty(value="项目编号")
    private String projectCode;

    @TableField(value = "status")
    @ApiModelProperty(value="状态:1启动 0未启动 2实施 3完成 4归档")
    private Integer status;

    @TableField(value = "createtime")
    @ApiModelProperty(value="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    @TableField(value = "updatetime")
    @ApiModelProperty(value="修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    @TableField(value = "currentstatre")
    @ApiModelProperty(value="选择的项目")
    private Integer currentStatre;

    @TableField(value = "createstaffid")
    @ApiModelProperty(value="创建人")
    private Integer createStaffId;

    @TableField(value = "assigbedpmtime")
    @ApiModelProperty(value="指派项目经理时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date assigbedpmTime;

    @TableField(value = "assigbedumpetime")
    @ApiModelProperty(value="指派主审人时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date assigbedumpeTime;

    @TableField(value = "assigbedcontroltime")
    @ApiModelProperty(value="指派质控经理时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date assigbedControlTime;

    @TableField(value = "planid")
    @ApiModelProperty(value="计划编号")
    private Integer planId;

    @TableField(exist = false)
    @ApiModelProperty(value="计划名称")
    private String planName;

    @TableField(value = "auditorgid")
    @ApiModelProperty(value="审计对象组织/被审计单位组织id")
    private Integer auditOrgId;

    @TableField(value = "tempzyid")
    @ApiModelProperty(value="指引模板")
    private Integer tempzyId;

    @TableField(exist = false)
    @ApiModelProperty(value="指引模板")
    private TblNbsjTempleteEntity zyTemp;

    @TableField(value = "updatestatus")
    @ApiModelProperty(value="修改模板时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Integer updateStatus;

    @TableField(value = "orgid")
    @ApiModelProperty(value="隶属组织")
    private Integer orgId;

    @TableField(value = "finishtime")
    @ApiModelProperty(value="完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date finishTime;

    @TableField(value = "implementtime")
    @ApiModelProperty(value="实施时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date implementTime;

    @TableField(value = "examinetype")
    @ApiModelProperty(value="审批状态 1：未审批 2：审批中 3：审批驳回 4：审批通过")
    private Integer examineType;

    @TableField(value = "pro_desc")
    @ApiModelProperty(value="相关内容")
    private String proDesc;

    @TableField(value = "pro_sjfs")
    @ApiModelProperty(value="审计方式")
    private String proSjfs;

    @TableField(value = "auditstaffid")
    @ApiModelProperty(value="审计对象人")
    private Integer auditStaffId;

    @TableField(exist = false)
    @ApiModelProperty(value="项目对象名称")
    private String proObj;

    @TableField(exist = false)
    @ApiModelProperty("项目实施期间（天）")
    private Integer carryOutDay;

    @TableField(value = "sjlx")
    @ApiModelProperty(value="")
    private String sjlx;

    @TableField(value = "sjzr")
    @ApiModelProperty(value="")
    private String sjzr;

    @TableField(value = "yqjcqk")
    @ApiModelProperty(value="")
    private String yqjcqk;

    @TableField(value = "ejfhr")
    @ApiModelProperty(value="")
    private Integer ejfhr;

    @TableField(value = "templeteid")
    @ApiModelProperty(value="")
    private Integer templeteId;

    @TableField(value = "staffid")
    @ApiModelProperty(value="")
    private Integer staffId;

    @TableField(value = "auditorg")
    @ApiModelProperty(value="")
    private String auditOrg;

    @TableField(value = "fpstatus")
    @ApiModelProperty(value="")
    private Integer fpStatus;

    @TableField(value = "planprojectid")
    @ApiModelProperty(value="")
    private Integer planProjectId;

    @TableField(value = "pprojectname")
    @ApiModelProperty(value="计划项目名称")
    private String pProjectName;

    @TableField(value = "targetname")
    @ApiModelProperty(value="工作目标")
    private String targetName;

    @TableField(value = "orgids")
    @ApiModelProperty(value="组织id")
    private String orgIds;

    @TableField(value = "orgidnames")
    @ApiModelProperty(value="")
    private String orgIdNames;

    @TableField(value = "externalassig")
    @ApiModelProperty(value="是否外委")
    private Integer externAlassig;

    @TableField(value = "pcount")
    @ApiModelProperty(value="")
    private Integer pCount;

    @TableField(value = "pstatus")
    @ApiModelProperty(value="")
    private Integer pStatus;

    @TableField(value = "filcode")
    @ApiModelProperty(value="")
    private String filCode;

    @TableField(value = "filname")
    @ApiModelProperty(value="")
    private String filName;

    @TableField(exist = false)
    @ApiModelProperty(value="审计单位")
    private String auditUnit;

    @TableField(exist = false)
    @ApiModelProperty(value = "被审计单位/项目对象名称")
    private String auditedUnit;

    @TableField(exist = false)
    @ApiModelProperty(value = "项目经理")
    private String projectManager;

    @TableField(exist = false)
    @ApiModelProperty(value = "审计模板名称")
    private String auditTemp;

    @TableField(exist = false)
    @ApiModelProperty(value = "指引模板名称")
    private String guideTemp;

    @TableField(exist = false)
    @ApiModelProperty(value = "项目小组信息")
    private List<ProjectTeamInfoEntity> projectTeamInfo;

    @TableField(exist = false)
    @ApiModelProperty(value = "附件信息")
    private List<TblAttachmentEntity> attachmentInfoList;

    @TableField(exist = false)
    @ApiModelProperty(value = "项目对象 0：部门/单位 1：用户")
    private String projectObj;

    @TableField(exist = false)
    @ApiModelProperty(value = "token")
    private String token;

    @TableField(exist = false)
    @ApiModelProperty(value = "是否计划 y：更新计划")
    private String isPlan;
    
    
	@TableField(value = "tblPm")
    @ApiModelProperty(value="项目经理")
    private TblStaff tblPm;
	
	@TableField(value = "tblumpe")
    @ApiModelProperty(value="主审人")
    private TblStaff tblumpe;
	
	@TableField(value = "tblcontrol")
    @ApiModelProperty(value="质控经理")
    private TblStaff tblcontrol;
	
	@TableField(value = "tblcreater")
    @ApiModelProperty(value="创建人")
    private TblStaff tblcreater;
	
	@TableField(value = "tblProjectTeams")
    @ApiModelProperty(value="")
    private Set<TblNbsjProjectTeamEntity> tblProjectTeams;
	
	@TableField(value = "tblnbsjorgs")
    @ApiModelProperty(value="")
    private TblOrganization tblnbsjorgs;
	
	@TableField(value = "tblorg")
    @ApiModelProperty(value="")
    private TblOrganization tblorg;
	
	@TableField(value = "tblnbsjstaffs")
    @ApiModelProperty(value="")
    private TblStaff tblnbsjstaffs;
	
	@TableField(value = "tblnbsjPlan")
    @ApiModelProperty(value="")
    private TblNbsjAuditplan tblnbsjPlan;
	
	@TableField(value = "tblprojectAtts")
    @ApiModelProperty(value="")
    private Set<TblAttachmentEntity> tblprojectAtts;
	
}
